Transmission control protocol (TCP) has a mechanism that causes a reception side of a data packet to return an acknowledgement (ACK) to thereby allow a transmission side to confirm that the data packet has reached the reception side.
TCP specifies a delayed ACK as the reception side transmits a single ACK for data packets of a predetermined number upon reception of the predetermined number of packets (for example, three packets). TCP also specifies that, for the delayed ACK, even if the reception side receives data packets less than the predetermine number of data packets and does not receive a data packet after that, the reception side transmits an ACK when a first predetermined time period has elapsed from reception of the last data packet. This first predetermined time period is referred to a delayed ACK timer value.
On the other hand, TCP specifies data retransmission as the transmission side retransmits the data packet if the transmission side does not receive an ACK for a data packet even after a second predetermined time period has elapsed from transmission of the data packet. This second predetermined time period is referred to a retransmission timer value (Retransmission Time Out, hereinafter referred to as an RTO).
If a retransmission timer value is small compared to a delayed ACK timer value, retransmission of a data packet (spurious retransmission) may frequently occur despite a success in transmission of the data packet. Therefore, the retransmission timer value is set to a sufficiently large value compared to the delayed ACK timer value.
However, the delayed ACK timer value may be set to various values depending on a partner apparatus so that the set value is unknown. Therefore, the retransmission timer value should be set to a larger value than necessary. This is one of causes for a reduction in a communication speed.